<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArLog Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArLog.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="classArLog-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArLog Class Reference<div class="ingroups"><a class="el" href="group__ImportantClasses.html">Important Classes</a> &#124; <a class="el" href="group__easy.html">Easy Subset of ARIA for Beginners</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Logging utility class.  
 <a href="classArLog.html#details">More...</a></p>

<p><code>#include &lt;ArLog.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ac8cc0fb3aa323ab2a1c21340fdd1dce3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> { <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a012daf6573594f91242f8dd7c02eb74b">Terse</a>, 
<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">Normal</a>, 
<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be">Verbose</a>
 }</td></tr>
<tr class="separator:ac8cc0fb3aa323ab2a1c21340fdd1dce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa62617e816d9caa5853bf4ce9b34ca10"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10">LogType</a> { <br />
&#160;&#160;<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10a9b9548406090127b57f335d9ecb35e41">StdOut</a>, 
<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10acc775da407aa66d7ad368b9d1f80b70c">StdErr</a>, 
<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10a35b2c9a3d5c6bb0f2dbe2064cc0163db">File</a>, 
<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10ab09ef7c8ec14d623c0aad3f78a596a77">Colbert</a>, 
<br />
&#160;&#160;<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10a24413a3b5b7242dbd446adcae533ad76">None</a>
<br />
 }</td></tr>
<tr class="separator:aa62617e816d9caa5853bf4ce9b34ca10"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a830b6edab2079ae1ffeb7e164e30636b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a830b6edab2079ae1ffeb7e164e30636b"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a830b6edab2079ae1ffeb7e164e30636b">addToConfig</a> (<a class="el" href="classArConfig.html">ArConfig</a> *config)</td></tr>
<tr class="memdesc:a830b6edab2079ae1ffeb7e164e30636b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use an <a class="el" href="classArConfig.html" title="Stores configuration information which may be read to and from files or other sources. ">ArConfig</a> object to control <a class="el" href="classArLog.html" title="Logging utility class. ">ArLog</a>'s options. <br /></td></tr>
<tr class="separator:a830b6edab2079ae1ffeb7e164e30636b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abab863c9ebf66262b4cc3afcee3bf0e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abab863c9ebf66262b4cc3afcee3bf0e9"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>aramInit</b> (const char *prefix, <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">ArLog::LogLevel</a> defaultLevel=<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">ArLog::Normal</a>, double defaultSize=10, bool daemonized=false)</td></tr>
<tr class="separator:abab863c9ebf66262b4cc3afcee3bf0e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a971bb1ab47f4a2c0ab8d72b523d7d617"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a971bb1ab47f4a2c0ab8d72b523d7d617"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a971bb1ab47f4a2c0ab8d72b523d7d617">clearFunctor</a> ()</td></tr>
<tr class="memdesc:a971bb1ab47f4a2c0ab8d72b523d7d617"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear functor set by <a class="el" href="classArLog.html#a386868be5c2bbdd02683ac99973b54fb" title="Set a functor to be called when a log message is made Call clearFunctor() to unset. ">setFunctor()</a>. <br /></td></tr>
<tr class="separator:a971bb1ab47f4a2c0ab8d72b523d7d617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cd0b4b08ef0ef0a0f51ebbfaaad1b98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cd0b4b08ef0ef0a0f51ebbfaaad1b98"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a9cd0b4b08ef0ef0a0f51ebbfaaad1b98">close</a> ()</td></tr>
<tr class="memdesc:a9cd0b4b08ef0ef0a0f51ebbfaaad1b98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the logging utility. <br /></td></tr>
<tr class="separator:a9cd0b4b08ef0ef0a0f51ebbfaaad1b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f4cc82023fcaaab0d41bc9603fda8e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f4cc82023fcaaab0d41bc9603fda8e4"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a2f4cc82023fcaaab0d41bc9603fda8e4">debug</a> (const char *str,...)</td></tr>
<tr class="memdesc:a2f4cc82023fcaaab0d41bc9603fda8e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to log a message at Verbose log level. <br /></td></tr>
<tr class="separator:a2f4cc82023fcaaab0d41bc9603fda8e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac30a111c39fe705140fdcdc4221bef8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac30a111c39fe705140fdcdc4221bef8e"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#ac30a111c39fe705140fdcdc4221bef8e">error</a> (const char *str,...)</td></tr>
<tr class="memdesc:ac30a111c39fe705140fdcdc4221bef8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to log a message at Terse log level with "Error: " prepended. <br /></td></tr>
<tr class="separator:ac30a111c39fe705140fdcdc4221bef8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb3d1663148daf8fa0a29cfc9dda09e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb3d1663148daf8fa0a29cfc9dda09e5"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#acb3d1663148daf8fa0a29cfc9dda09e5">info</a> (const char *str,...)</td></tr>
<tr class="memdesc:acb3d1663148daf8fa0a29cfc9dda09e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to log a message at Normal log level. <br /></td></tr>
<tr class="separator:acb3d1663148daf8fa0a29cfc9dda09e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74fa320b89ec1ece70053722c91f7c71"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a74fa320b89ec1ece70053722c91f7c71">init</a> (<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10">LogType</a> type, <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *fileName=&quot;&quot;, bool logTime=false, bool alsoPrint=false, bool printThisCall=true)</td></tr>
<tr class="memdesc:a74fa320b89ec1ece70053722c91f7c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the logging utility with options.  <a href="#a74fa320b89ec1ece70053722c91f7c71">More...</a><br /></td></tr>
<tr class="separator:a74fa320b89ec1ece70053722c91f7c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb1eee01332bd15f3cc150928239980a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb1eee01332bd15f3cc150928239980a"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#aeb1eee01332bd15f3cc150928239980a">internalForceLockup</a> (void)</td></tr>
<tr class="memdesc:aeb1eee01332bd15f3cc150928239980a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function to force a lockup, only for debugging. <br /></td></tr>
<tr class="separator:aeb1eee01332bd15f3cc150928239980a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43a8b3789126c818f390f24bdbceccce"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a43a8b3789126c818f390f24bdbceccce">log</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str,...)</td></tr>
<tr class="memdesc:a43a8b3789126c818f390f24bdbceccce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message, with formatting and variable number of arguments.  <a href="#a43a8b3789126c818f390f24bdbceccce">More...</a><br /></td></tr>
<tr class="separator:a43a8b3789126c818f390f24bdbceccce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe74cf86b304c8eb6abc75e7937a8cc9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe74cf86b304c8eb6abc75e7937a8cc9"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>log_v</b> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *prefix, const char *format, va_list vaptr)</td></tr>
<tr class="separator:afe74cf86b304c8eb6abc75e7937a8cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce6969b47e8bfbc0d98d5875dfc3483"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#adce6969b47e8bfbc0d98d5875dfc3483">logBacktrace</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level)</td></tr>
<tr class="memdesc:adce6969b47e8bfbc0d98d5875dfc3483"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log function call backtrace for debugging.  <a href="#adce6969b47e8bfbc0d98d5875dfc3483">More...</a><br /></td></tr>
<tr class="separator:adce6969b47e8bfbc0d98d5875dfc3483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a402af42ce9e591ff8a43fa749aebfb5b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a402af42ce9e591ff8a43fa749aebfb5b">logErrorFromOS</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str,...)</td></tr>
<tr class="memdesc:a402af42ce9e591ff8a43fa749aebfb5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs an error, adding the error and string the error mean at the end of this message.  <a href="#a402af42ce9e591ff8a43fa749aebfb5b">More...</a><br /></td></tr>
<tr class="separator:a402af42ce9e591ff8a43fa749aebfb5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab31af89bff2fc0b81ca067646de83111"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#ab31af89bff2fc0b81ca067646de83111">logErrorFromOSNoLock</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str,...)</td></tr>
<tr class="memdesc:ab31af89bff2fc0b81ca067646de83111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs an error, adding the error and string the error mean at the end of this message...  <a href="#ab31af89bff2fc0b81ca067646de83111">More...</a><br /></td></tr>
<tr class="separator:ab31af89bff2fc0b81ca067646de83111"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76ae32a1dd7670afa9795147d1a32be6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a76ae32a1dd7670afa9795147d1a32be6">logErrorFromOSPlain</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str)</td></tr>
<tr class="memdesc:a76ae32a1dd7670afa9795147d1a32be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs an error, adding the error and string the error mean at the end of this message.  <a href="#a76ae32a1dd7670afa9795147d1a32be6">More...</a><br /></td></tr>
<tr class="separator:a76ae32a1dd7670afa9795147d1a32be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f291b41885b8144817e26aeb9d262b3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a3f291b41885b8144817e26aeb9d262b3">logErrorFromOSPlainNoLock</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str)</td></tr>
<tr class="memdesc:a3f291b41885b8144817e26aeb9d262b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs an error, adding the error and string the error mean at the end of this message...  <a href="#a3f291b41885b8144817e26aeb9d262b3">More...</a><br /></td></tr>
<tr class="separator:a3f291b41885b8144817e26aeb9d262b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ae2f0f277cf93c23e18059a7b9454aa"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a3ae2f0f277cf93c23e18059a7b9454aa">logFileContents</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *fileName)</td></tr>
<tr class="memdesc:a3ae2f0f277cf93c23e18059a7b9454aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the contents of  and print a log message for each line. File should be plain text.  <a href="#a3ae2f0f277cf93c23e18059a7b9454aa">More...</a><br /></td></tr>
<tr class="separator:a3ae2f0f277cf93c23e18059a7b9454aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a5dda44300a1dd6b2de943a2f57c4e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a5dda44300a1dd6b2de943a2f57c4e9"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>logNoLock</b> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str,...)</td></tr>
<tr class="separator:a8a5dda44300a1dd6b2de943a2f57c4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a252879acad25b3c1e9f0c58aad8d27a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a252879acad25b3c1e9f0c58aad8d27a3"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a252879acad25b3c1e9f0c58aad8d27a3">logPlain</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level, const char *str)</td></tr>
<tr class="memdesc:a252879acad25b3c1e9f0c58aad8d27a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message containing just a plain string. <br /></td></tr>
<tr class="separator:a252879acad25b3c1e9f0c58aad8d27a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a386868be5c2bbdd02683ac99973b54fb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a386868be5c2bbdd02683ac99973b54fb">setFunctor</a> (<a class="el" href="classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *functor)</td></tr>
<tr class="memdesc:a386868be5c2bbdd02683ac99973b54fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a functor to be called when a log message is made Call <a class="el" href="classArLog.html#a971bb1ab47f4a2c0ab8d72b523d7d617" title="Clear functor set by setFunctor(). ">clearFunctor()</a> to unset.  <a href="#a386868be5c2bbdd02683ac99973b54fb">More...</a><br /></td></tr>
<tr class="separator:a386868be5c2bbdd02683ac99973b54fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91fba572e55221e5b01f45d94ed871be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91fba572e55221e5b01f45d94ed871be"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a91fba572e55221e5b01f45d94ed871be">setLogLevel</a> (<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a> level)</td></tr>
<tr class="memdesc:a91fba572e55221e5b01f45d94ed871be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set log level. <br /></td></tr>
<tr class="separator:a91fba572e55221e5b01f45d94ed871be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba300bc3c468faba6fd5cd03d7a7c34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaba300bc3c468faba6fd5cd03d7a7c34"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#aaba300bc3c468faba6fd5cd03d7a7c34">warning</a> (const char *str,...)</td></tr>
<tr class="memdesc:aaba300bc3c468faba6fd5cd03d7a7c34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to log a message at Terse log level with "Warning: " prepended. <br /></td></tr>
<tr class="separator:aaba300bc3c468faba6fd5cd03d7a7c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a052c8e9891ff891c9a66b709d608bb67"><td class="memItemLeft" align="right" valign="top">static void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLog.html#a052c8e9891ff891c9a66b709d608bb67">colbertPrint</a> )(int i, const char *str)</td></tr>
<tr class="separator:a052c8e9891ff891c9a66b709d608bb67"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a5cbc24c02c33e4bcd150817657a6803a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5cbc24c02c33e4bcd150817657a6803a"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>aramProcessFile</b> (void)</td></tr>
<tr class="separator:a5cbc24c02c33e4bcd150817657a6803a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0484f84696a63835f76701f20fe48bc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0484f84696a63835f76701f20fe48bc3"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>checkFileSize</b> (void)</td></tr>
<tr class="separator:a0484f84696a63835f76701f20fe48bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33f17dc122c0d2431c3e1c311387c897"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33f17dc122c0d2431c3e1c311387c897"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>filledAramLog</b> (void)</td></tr>
<tr class="separator:a33f17dc122c0d2431c3e1c311387c897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaff4909c9b35cb7ba68517dc05d52e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abaff4909c9b35cb7ba68517dc05d52e0"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>invokeFunctor</b> (const char *message)</td></tr>
<tr class="separator:abaff4909c9b35cb7ba68517dc05d52e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c397fa2b4c813db5d33ee56afe393b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c397fa2b4c813db5d33ee56afe393b4"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>processFile</b> (void)</td></tr>
<tr class="separator:a7c397fa2b4c813db5d33ee56afe393b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:a2464534dfbc5850b6e5a482e01d907fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2464534dfbc5850b6e5a482e01d907fe"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourAlsoPrint</b> = false</td></tr>
<tr class="separator:a2464534dfbc5850b6e5a482e01d907fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3124a628f613fdb0319701fd0d6f48a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3124a628f613fdb0319701fd0d6f48a"></a>
static char&#160;</td><td class="memItemRight" valign="bottom"><b>ourAramConfigLogLevel</b> [1024] = &quot;Normal&quot;</td></tr>
<tr class="separator:ae3124a628f613fdb0319701fd0d6f48a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac13a8afb372f8689990d9a10d582744"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac13a8afb372f8689990d9a10d582744"></a>
static double&#160;</td><td class="memItemRight" valign="bottom"><b>ourAramConfigLogSize</b> = 10</td></tr>
<tr class="separator:aac13a8afb372f8689990d9a10d582744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaca54cbd0ef0216e6b7a651ce956f72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adaca54cbd0ef0216e6b7a651ce956f72"></a>
static <a class="el" href="classArGlobalRetFunctor.html">ArGlobalRetFunctor</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ourAramConfigProcessFileCB</b></td></tr>
<tr class="separator:adaca54cbd0ef0216e6b7a651ce956f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf47546aafe34ff0c387c50ea0824c02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf47546aafe34ff0c387c50ea0824c02"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourAramDaemonized</b> = false</td></tr>
<tr class="separator:adf47546aafe34ff0c387c50ea0824c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a284cdc2b18ea5984ea92d651348dc60d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a284cdc2b18ea5984ea92d651348dc60d"></a>
static double&#160;</td><td class="memItemRight" valign="bottom"><b>ourAramLogSize</b> = 0</td></tr>
<tr class="separator:a284cdc2b18ea5984ea92d651348dc60d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2cf18b8e3dfc821d418bf19d8c39327"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2cf18b8e3dfc821d418bf19d8c39327"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>ourAramPrefix</b> = &quot;&quot;</td></tr>
<tr class="separator:ad2cf18b8e3dfc821d418bf19d8c39327"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68ec790bdcb23caac3c54cd75e19d8d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68ec790bdcb23caac3c54cd75e19d8d4"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>ourCharsLogged</b> = 0</td></tr>
<tr class="separator:a68ec790bdcb23caac3c54cd75e19d8d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79636804bf36eca1226e511f5a3e5cc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79636804bf36eca1226e511f5a3e5cc3"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>ourColbertStream</b> = -1</td></tr>
<tr class="separator:a79636804bf36eca1226e511f5a3e5cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2df0383f7aaccb95378491498e2bed1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2df0383f7aaccb95378491498e2bed1b"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourConfigAlsoPrint</b> = false</td></tr>
<tr class="separator:a2df0383f7aaccb95378491498e2bed1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1e4a23556f048ec223c05c665f29577"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1e4a23556f048ec223c05c665f29577"></a>
static char&#160;</td><td class="memItemRight" valign="bottom"><b>ourConfigFileName</b> [1024] = &quot;log.txt&quot;</td></tr>
<tr class="separator:af1e4a23556f048ec223c05c665f29577"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74ddfced099f63785544d410be61c9ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74ddfced099f63785544d410be61c9ec"></a>
static <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ourConfigLogLevel</b> = <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">ArLog::Normal</a></td></tr>
<tr class="separator:a74ddfced099f63785544d410be61c9ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4291ac27d9f1e21883556976376cc6bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4291ac27d9f1e21883556976376cc6bf"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourConfigLogTime</b> = false</td></tr>
<tr class="separator:a4291ac27d9f1e21883556976376cc6bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af61e2c4140a99eda05c476ec3218483c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af61e2c4140a99eda05c476ec3218483c"></a>
static <a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10">LogType</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ourConfigLogType</b> = <a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10a9b9548406090127b57f335d9ecb35e41">ArLog::StdOut</a></td></tr>
<tr class="separator:af61e2c4140a99eda05c476ec3218483c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9660e5954636910e04154ad0efee581b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9660e5954636910e04154ad0efee581b"></a>
static <a class="el" href="classArGlobalRetFunctor.html">ArGlobalRetFunctor</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ourConfigProcessFileCB</b></td></tr>
<tr class="separator:a9660e5954636910e04154ad0efee581b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a89334ffe46e7d5e0b7d2dbd090d35e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a89334ffe46e7d5e0b7d2dbd090d35e"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>ourFileName</b></td></tr>
<tr class="separator:a3a89334ffe46e7d5e0b7d2dbd090d35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44010454a00916eed2a0f29ec4dba459"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44010454a00916eed2a0f29ec4dba459"></a>
static FILE *&#160;</td><td class="memItemRight" valign="bottom"><b>ourFP</b> =0</td></tr>
<tr class="separator:a44010454a00916eed2a0f29ec4dba459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a385a4b89219cd81c852aa9649bb11d9a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a385a4b89219cd81c852aa9649bb11d9a"></a>
static <a class="el" href="classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>ourFunctor</b></td></tr>
<tr class="separator:a385a4b89219cd81c852aa9649bb11d9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa82e4bf933f0aa50f6164de61997f3aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa82e4bf933f0aa50f6164de61997f3aa"></a>
static <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ourLevel</b> =<a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">ArLog::Normal</a></td></tr>
<tr class="separator:aa82e4bf933f0aa50f6164de61997f3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa058bbc5533875714bbb40e8926896e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa058bbc5533875714bbb40e8926896e5"></a>
static <a class="el" href="classArLog.html">ArLog</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>ourLog</b></td></tr>
<tr class="separator:aa058bbc5533875714bbb40e8926896e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1efa9a51851fd1c8485f1a10ee5d53e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1efa9a51851fd1c8485f1a10ee5d53e5"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourLoggingTime</b> = false</td></tr>
<tr class="separator:a1efa9a51851fd1c8485f1a10ee5d53e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a021de1b34bb92c1575e3ba2df7c899b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a021de1b34bb92c1575e3ba2df7c899b5"></a>
static <a class="el" href="classArMutex.html">ArMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ourMutex</b></td></tr>
<tr class="separator:a021de1b34bb92c1575e3ba2df7c899b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92aa04681d5d0120e6eb6bd175cb5dfc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92aa04681d5d0120e6eb6bd175cb5dfc"></a>
static <a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10">LogType</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ourType</b> =<a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10a9b9548406090127b57f335d9ecb35e41">StdOut</a></td></tr>
<tr class="separator:a92aa04681d5d0120e6eb6bd175cb5dfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fd9624adffd6a171fdd572d694a3c4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fd9624adffd6a171fdd572d694a3c4e"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourUseAramBehavior</b> = false</td></tr>
<tr class="separator:a2fd9624adffd6a171fdd572d694a3c4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Logging utility class. </p>
<p><a class="el" href="classArLog.html" title="Logging utility class. ">ArLog</a> is a utility class to log all messages from <a class="el" href="classAria.html" title="Contains global initialization, deinitialization and other global functions. ">Aria</a> to a choosen destintation. Messages can be logged to stdout, stderr, a file, and turned off completely. Logging by default is set to stdout. The level of logging can be changed as well. Allowed levels are Terse, Normal, and Verbose. By default the level is set to Normal. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="ac8cc0fb3aa323ab2a1c21340fdd1dce3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">ArLog::LogLevel</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ac8cc0fb3aa323ab2a1c21340fdd1dce3a012daf6573594f91242f8dd7c02eb74b"></a>Terse&#160;</td><td class="fielddoc">
<p>Use terse logging. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1"></a>Normal&#160;</td><td class="fielddoc">
<p>Use normal logging. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be"></a>Verbose&#160;</td><td class="fielddoc">
<p>Use verbose logging. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="aa62617e816d9caa5853bf4ce9b34ca10"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10">ArLog::LogType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aa62617e816d9caa5853bf4ce9b34ca10a9b9548406090127b57f335d9ecb35e41"></a>StdOut&#160;</td><td class="fielddoc">
<p>Use stdout for logging. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aa62617e816d9caa5853bf4ce9b34ca10acc775da407aa66d7ad368b9d1f80b70c"></a>StdErr&#160;</td><td class="fielddoc">
<p>Use stderr for logging. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aa62617e816d9caa5853bf4ce9b34ca10a35b2c9a3d5c6bb0f2dbe2064cc0163db"></a>File&#160;</td><td class="fielddoc">
<p>Use a file for logging. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aa62617e816d9caa5853bf4ce9b34ca10ab09ef7c8ec14d623c0aad3f78a596a77"></a>Colbert&#160;</td><td class="fielddoc">
<p>Use a Colbert stream for logging. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aa62617e816d9caa5853bf4ce9b34ca10a24413a3b5b7242dbd446adcae533ad76"></a>None&#160;</td><td class="fielddoc">
<p>Disable logging. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a74fa320b89ec1ece70053722c91f7c71"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArLog::init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#aa62617e816d9caa5853bf4ce9b34ca10">LogType</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fileName</em> = <code>&quot;&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>logTime</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>alsoPrint</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>printThisCall</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initialize the logging utility with options. </p>
<p>Initialize the logging utility by supplying the type of logging and the level of logging.</p>
<p>If the type is File, the fileName needs to be supplied. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>type of Logging </td></tr>
    <tr><td class="paramname">level</td><td>level of logging </td></tr>
    <tr><td class="paramname">fileName</td><td>the name of the file for File type of logging </td></tr>
    <tr><td class="paramname">logTime</td><td>if this is true then the time a message is given will be logged </td></tr>
    <tr><td class="paramname">alsoPrint</td><td>if this is true then in addition to whatever other logging (to a file for instance) the results will also be printed </td></tr>
    <tr><td class="paramname">printThisCall</td><td>if this is true the new settings will be printed otherwise they won't </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a43a8b3789126c818f390f24bdbceccce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::log </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Log a message, with formatting and variable number of arguments. </p>
<p>This function is used like printf().</p>
<p><b>Java and Python Wrappers:</b> In Java and Python, this function only takes one string argument. Use Java or Python's native facities for constructing a formatted string, e.g. the % and + string operators in Python, and the methods of the Java String class.</p>
<p>If the supplied level is less than or equal to the set level, it will be printed. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>level of logging </td></tr>
    <tr><td class="paramname">str</td><td>printf() like formating string </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="actionExample_8cpp-example.html#a8">actionExample.cpp</a>, <a class="el" href="actionGroupExample_8cpp-example.html#a9">actionGroupExample.cpp</a>, <a class="el" href="actsColorFollowingExample_8cpp-example.html#a9">actsColorFollowingExample.cpp</a>, <a class="el" href="armExample_8cpp-example.html#a7">armExample.cpp</a>, <a class="el" href="auxSerialExample_8cpp-example.html#a6">auxSerialExample.cpp</a>, <a class="el" href="cameraPTZExample_8cpp-example.html#a7">cameraPTZExample.cpp</a>, <a class="el" href="configExample_8cpp-example.html#a10">configExample.cpp</a>, <a class="el" href="demo_8cpp-example.html#a4">demo.cpp</a>, <a class="el" href="dpptuExample_8cpp-example.html#a5">dpptuExample.cpp</a>, <a class="el" href="gotoActionExample_8cpp-example.html#a9">gotoActionExample.cpp</a>, <a class="el" href="gpsExample_8cpp-example.html#a7">gpsExample.cpp</a>, <a class="el" href="gpsRobotTaskExample_8cpp-example.html#a13">gpsRobotTaskExample.cpp</a>, <a class="el" href="gripperExample_8cpp-example.html#a13">gripperExample.cpp</a>, <a class="el" href="gyroExample_8cpp-example.html#a11">gyroExample.cpp</a>, <a class="el" href="imuExample_8cpp-example.html#a3">imuExample.cpp</a>, <a class="el" href="joydriveActionExample_8cpp-example.html#a16">joydriveActionExample.cpp</a>, <a class="el" href="laserConnect_8cpp-example.html#a7">laserConnect.cpp</a>, <a class="el" href="lasers_8cpp-example.html#a7">lasers.cpp</a>, <a class="el" href="lineFinderExample_8cpp-example.html#a7">lineFinderExample.cpp</a>, <a class="el" href="moduleExample_8cpp-example.html#a1">moduleExample.cpp</a>, <a class="el" href="moduleExample_Mod_8cpp-example.html#a4">moduleExample_Mod.cpp</a>, <a class="el" href="mtxIO_8cpp-example.html#a0">mtxIO.cpp</a>, <a class="el" href="mtxPowerControl_8cpp-example.html#a2">mtxPowerControl.cpp</a>, <a class="el" href="mtxWheelLights_8cpp-example.html#a6">mtxWheelLights.cpp</a>, <a class="el" href="robotConnectionCallbacks_8cpp-example.html#a4">robotConnectionCallbacks.cpp</a>, <a class="el" href="robotSyncTaskExample_8cpp-example.html#a8">robotSyncTaskExample.cpp</a>, <a class="el" href="seekurPower_8cpp-example.html#a6">seekurPower.cpp</a>, <a class="el" href="simpleConnect_8cpp-example.html#a6">simpleConnect.cpp</a>, <a class="el" href="simpleMotionCommands_8cpp-example.html#a4">simpleMotionCommands.cpp</a>, <a class="el" href="socketClientExample_8cpp-example.html#a2">socketClientExample.cpp</a>, <a class="el" href="socketServerExample_8cpp-example.html#a3">socketServerExample.cpp</a>, <a class="el" href="teleopActionsExample_8cpp-example.html#a6">teleopActionsExample.cpp</a>, <a class="el" href="threadExample_8cpp-example.html#a7">threadExample.cpp</a>, <a class="el" href="triangleDriveToActionExample_8cpp-example.html#a7">triangleDriveToActionExample.cpp</a>, <a class="el" href="twoRobotWander_8cpp-example.html#a5">twoRobotWander.cpp</a>, and <a class="el" href="wander_8cpp-example.html#a7">wander.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="adce6969b47e8bfbc0d98d5875dfc3483"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::logBacktrace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Log function call backtrace for debugging. </p>
<dl class="section note"><dt>Note</dt><dd>Available on Linux only </dd></dl>

</div>
</div>
<a class="anchor" id="a402af42ce9e591ff8a43fa749aebfb5b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::logErrorFromOS </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Logs an error, adding the error and string the error mean at the end of this message. </p>
<p>This function appends errorno in linux, or getLastError in windows, and a string indicating the problem.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>level of logging </td></tr>
    <tr><td class="paramname">str</td><td>printf() like formating string </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab31af89bff2fc0b81ca067646de83111"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::logErrorFromOSNoLock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Logs an error, adding the error and string the error mean at the end of this message... </p>
<p>This function appends errorno in linux, or getLastError in windows, and a string indicating the problem.</p>
<p>internal version, don't use it</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>level of logging </td></tr>
    <tr><td class="paramname">str</td><td>printf() like formating string </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a76ae32a1dd7670afa9795147d1a32be6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::logErrorFromOSPlain </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Logs an error, adding the error and string the error mean at the end of this message. </p>
<p>This function appends errorno in linux, or getLastError in windows, and a string indicating the problem.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>level of logging </td></tr>
    <tr><td class="paramname">str</td><td>printf() like formating string </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f291b41885b8144817e26aeb9d262b3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::logErrorFromOSPlainNoLock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Logs an error, adding the error and string the error mean at the end of this message... </p>
<p>This function appends errorno in linux, or getLastError in windows, and a string indicating the problem.</p>
<p>internal version, dont' use it</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">level</td><td>level of logging </td></tr>
    <tr><td class="paramname">str</td><td>printf() like formating string </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3ae2f0f277cf93c23e18059a7b9454aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArLog::logFileContents </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3">LogLevel</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fileName</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Read the contents of  and print a log message for each line. File should be plain text. </p>
<p>Log a file if it exists. </p>

</div>
</div>
<a class="anchor" id="a386868be5c2bbdd02683ac99973b54fb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArLog::setFunctor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArFunctor1.html">ArFunctor1</a>&lt; const char * &gt; *&#160;</td>
          <td class="paramname"><em>functor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set a functor to be called when a log message is made Call <a class="el" href="classArLog.html#a971bb1ab47f4a2c0ab8d72b523d7d617" title="Clear functor set by setFunctor(). ">clearFunctor()</a> to unset. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a052c8e9891ff891c9a66b709d608bb67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void(* ArLog::colbertPrint)(int i, const char *str)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000034">Deprecated:</a></b></dt><dd></dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArLog.h</li>
<li>ArLog.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArLog.html">ArLog</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
